package cn.tedu.elasticsearch.demo.po;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.elasticsearch.annotations.*;

import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
// 这个对象类型是一个文档业务数据模型 写入索引student不能大写、不能使用特殊符号@#￥
@Document(indexName = "student")
// po第一次写入索引 索引不存在的时候自动创建 可以通过注解指定默认参数的配置
@Setting(shards = 1, replicas = 0)
public class StudentESPO {
    // 业务属性 id name profile 索引映射 默认 修改可以在属性添加注解
    @Field(type = FieldType.Integer)
    private Integer id;
    // 在业务中有很多字符串属性 到底使用keyword 还是text
    // text: 全文搜索的属性 标题 简介 内容
    // keyword: 不做全文搜索的属性 url 编码uuid 手机号
    @Field(type = FieldType.Keyword)
    private String name;
    @Field(type = FieldType.Text,analyzer = "ik_max_word")
    private String profile;
    @Field(type = FieldType.Date,format = DateFormat.date_hour_minute_second)
    private Date birthday;
}
